/**
 * 
 */
package model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author Andre Cavalcante Hora
 *
 */
public class Projeto {
	
	private String nomeUnix;
	private String nomeCompleto;
	private String descricao;
	private String licenca;
	private String descricaoPublica;
	private String scm;
	private String status;
	private Demanda demanda;
	private boolean servico;
	private List<LinhaUsuario> linhasUsuarios;
	
	/**
	 * 
	 */
	public Projeto() {
		//usuarios = new ArrayList<UsuarioCT>();
	}
	
	/**
	 * 
	 * @param nome
	 * @param descricao
	 * @param status
	 */
	public Projeto(String nomeUnix, String nomeCompleto, String descricao, String licenca, String descricaoPublica, String scm, String status){
		this.nomeUnix = nomeUnix.toLowerCase().trim();
		this.nomeCompleto = nomeCompleto;
		this.descricao = descricao;
		this.licenca = licenca;
		this.descricaoPublica = descricaoPublica;
		this.scm = scm;
		this.status = status;
		//this.demanda = "";
		//usuarios = new ArrayList<UsuarioCT>();
	}

	public String getNomeUnix() {
		return nomeUnix;
	}

	public void setNomeUnix(String nomeUnix) {
		this.nomeUnix = nomeUnix.toLowerCase().trim();
	}

	public String getNomeCompleto() {
		return nomeCompleto;
	}

	public void setNomeCompleto(String nomeCompleto) {
		this.nomeCompleto = nomeCompleto;
	}

	public String getDescricao() {
		return descricao;
	}
	
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	public String getLicenca() {
		return licenca;
	}

	public void setLicenca(String licenca) {
		this.licenca = licenca;
	}

	public String getDescricaoPublica() {
		return descricaoPublica;
	}

	public void setDescricaoPublica(String descricaoPublica) {
		this.descricaoPublica = descricaoPublica;
	}

	public String getScm() {
		return "svn";
	}

	public void setScm(String scm) {
		this.scm = scm;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Demanda getDemanda() {
		return demanda;
	}

	public void setDemanda(Demanda demanda) {
		this.demanda = demanda;
	}

	public List<LinhaUsuario> getLinhasUsuarios() {
		return linhasUsuarios;
	}

	public void setLinhasUsuarios(List<LinhaUsuario> linhasUsuarios) {
		this.linhasUsuarios = linhasUsuarios;
	}
	
	public List<String> getAdministradores() {
		List<String> administradores = new ArrayList<String>();
		for (Iterator<LinhaUsuario> iterator = linhasUsuarios.iterator(); iterator.hasNext();) {
			LinhaUsuario linha = iterator.next();
			
			if (linha.isAdministrador()) {
				administradores.add(linha.getUsuario());
			}
		}
		return administradores;
	}
	
	public List<String> getMembros() {
		List<String> membros = new ArrayList<String>();
		for (Iterator<LinhaUsuario> iterator = linhasUsuarios.iterator(); iterator.hasNext();) {
			LinhaUsuario linha = iterator.next();
			
			if (linha.isMembro()) {
				membros.add(linha.getUsuario());
			}
		}
		return membros;
	}

	public boolean getServico() {
		return servico;
	}

	public void setServico(boolean servico) {
		this.servico = servico;
	}

//	/**
//	 * 
//	 * @param demanda
//	 */
//	public void setDemanda(Demanda demanda) {
//		this.demanda = demanda;
//	}
//	
//	public List<UsuarioCT> getUsuarios() {
//		return this.usuarios;
//	}
//	
//	/**
//	 * 
//	 * @param u
//	 */
//	public void inserirUsuario(UsuarioCT u) {
//		usuarios.add(u);
//	}
}